// the original code installed. can be null if it's the same as "code" or this wasn't an install
attribute AString originalCode;
//see the flags below. you can set this before initing the style
attribute short mode;
//modes
attribute short CALCULATE_META;
attribute short REGISTER_STYLE_ON_CHANGE;
attribute short REGISTER_STYLE_ON_LOAD;
attribute short UNREGISTER_STYLE_ON_LOAD;
void list(in short mode, out unsigned long count, [array, size_is(count), retval] out stylishStyle retv);
stylishStyle find(in unsigned long id, in short mode);
stylishStyle findByUrl(in AString url, in short mode);
void findForUrl(in AString url, in boolean includeGlobal, in short mode, out unsigned long count, [array, size_is(count), retval] out stylishStyle retv);
void findEnabled(in boolean enabled, in short mode, out unsigned long count, [array, size_is(count), retval] out stylishStyle retv);
void findByMeta(in AString name, in AString value, in short mode, out unsigned long count, [array, size_is(count), retval] out stylishStyle retv);
void checkForErrors(in AString css, in nsIConsoleListener listener);
void copyListToClipboard();
void init(in AString url, in AString updateUrl, in AString md5Url, in AString name, in AString code, in boolean enabled, in AString originalCode);
void save();
void delete();
boolean appliesToUrl(in AString url);
void checkForUpdates();
void applyUpdate();
void setPreview(in boolean on);
void revert();
void addMeta(in AString name, in AString value);
void removeMeta(in AString name, in AString value);
void removeAllMeta(in AString name);
//XXX this is a string instead of AString. problem?
void getMeta(in AString name, out unsigned long count, [array, size_is(count), retval] out string retv);
void getTypes(out unsigned long count, [array, size_is(count), retval] out string retv);